text widgets: Don't lose focus after Emoji
authorMatthias Clasen <mclasen@redhat.com>
Wed, 2 Sep 2020 14:26:13 +0000 (10:26 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 2 Sep 2020 19:20:58 +0000 (15:20 -0400)
Make sure to grab focus back when the Emoji chooser
disappears. This prevents focus going nowhere when
the Emoji chooser is canceled.

Fixes: #3112
gtk/gtktext.c
gtk/gtktextview.c

index a87f21b79821b26b7c0af46f678ba94e14f92f6f..16968119bcf6e18539b9e28af6803a2bdda77493 100644 (file)
@@ -6825,6 +6825,7 @@ gtk_text_insert_emoji (GtkText *self)
 
       gtk_widget_set_parent (chooser, GTK_WIDGET (self));
       g_signal_connect (chooser, "emoji-picked", G_CALLBACK (emoji_picked), self);
+      g_signal_connect_swapped (chooser, "hide", G_CALLBACK (gtk_widget_grab_focus), self);
     }
 
   gtk_popover_popup (GTK_POPOVER (chooser));
index 06caf5e3ee237bef85f58e37b50b089ebbd3a4f8..5b0715befdd7ce2a25beee9bef3cc96ccc826f04 100644 (file)
@@ -9637,6 +9637,7 @@ gtk_text_view_insert_emoji (GtkTextView *text_view)
 
       gtk_widget_set_parent (chooser, GTK_WIDGET (text_view));
       g_signal_connect (chooser, "emoji-picked", G_CALLBACK (emoji_picked), text_view);
+      g_signal_connect_swapped (chooser, "hide", G_CALLBACK (gtk_widget_grab_focus), text_view);
     }
 
   buffer = get_buffer (text_view);